草庐IT

Android Explicit Intent 抛出 NoClassDefFounderror

全部标签

c++ - 下面最后一句话(粗体)与复制抛出的异常有什么关系?

这是Stroustup的书的摘录,第3版,第362页:Inprinciple,anexceptioniscopiedwhenitisthrown,sothehandlergetsholdofacopyoftheoriginalexception.Infact,anexceptionmaybecopiedseveraltimesbeforeitiscaught.Consequently,wecannotthrowanexceptionthatcannotbecopied.Theimplementationmayapplyawidevarietyofstrategiesforstoring

c++ - 为什么抛出的对象必须进行复制初始化?

异常使用对象的静态类型来复制初始化抛出的对象。例如:structfoo{foo()=default;foo(constfoo&)=delete;};intmain(){throwfoo();}Clang++--std=c++14提示无法使用显式删除的复制构造函数。为什么它不能移动初始化呢? 最佳答案 它不能移动构造,因为该类型没有移动构造函数。删除的复制构造函数会抑制隐式移动构造函数。 关于c++-为什么抛出的对象必须进行复制初始化?,我们在StackOverflow上找到一个类似的问题

c++ - 在构造函数中抛出异常时未调用析构函数

为什么在这段代码中没有调用析构函数?#include#includeclassMyClass{boost::scoped_ptrptr;public:MyClass():ptr(newint){*ptr=0;throw;std::coutmyinst(newMyClass);std::coutincrement()increment()编辑从答案中了解到,当构造函数中发生异常时,不会调用析构函数。但是如果异常发生在main()中,即MyClass对象完全实例化后,MyClass的析构函数会被调用吗?如果不是,那为什么它是智能指针?添加代码#include#includeclassMyC

c++ - 当我抛出异常时会发生什么?

我有一些技术问题。在这个函数中:stringreport()const{if(list.begin()==list.end()){throw"notgood";}//dosomething}如果我抛出异常,程序会发生什么情况?我的功能会终止还是会继续运行?如果它终止,它将返回什么值? 最佳答案 如果抛出异常,所有函数将退出并返回到它找到具有匹配的catch类型的try...catchblock的位置。如果您的函数不是从tryblock中调用的,程序将退出并出现未处理的异常。查看https://isocpp.org/wiki/faq/

c++ - 抛出失败信号的参数

如果出现问题而您不知道如何恢复,是否可以只从构造函数调用throw;?想法是让应用程序因转储而崩溃,因为状态未知。还是应该始终指定参数?从MSDN我只发现如果没有参数它会重新抛出,但不知道如果没有要重新抛出的初始异常会发生什么。 最佳答案 没有。throw;是一种重新抛出当前异常的特殊语法。只有在catchblock(或从其中调用的代码)中继续传播异常才有意义。只需使用:#include...throwstd::runtime_error("somedescription");甚至只是throw"somedescription";但

c++ - 这个声明是什么意思?异常()抛出()

std::exception类定义如下exception()throw(){}virtual~exception()throw();virtualconstchar*what()constthrow();声明中的throw()语法是什么意思?throw()可以带参数吗?没有参数是什么意思? 最佳答案 这是一个“异常规范”。throw()意思是“这个函数不会抛出任何异常”。您还可以指定异常,因此throw(foo)会说此函数可能会抛出foo类型的异常。这个特性的好用性在C++社区中争论不休——普遍的评价似乎是它不是特别好用。有关详细信

c++ - 强制所有 QNaN 改为普通 NaN (SNaN),以便抛出异常

我已将VisualStudio配置为通过_controlfp函数抛出浮点异常。这适用于NAN和INF,但不适用于QNAN。IE。安静的NaN不会引发异常。VisualStudio2008/2010是否有任何函数或配置选项会强制QNAN改为NAN,以便它们抛出异常? 最佳答案 一些有用的提示,虽然我从来没有远程做过这样的事情:阅读:http://www.cisl.ucar.edu/docs/trap.error/errortypes.html互联网上的搜索结果(我实际上只花了大约30秒)让我相信这通常是通过编译器选项启用的。不过,我似

c++ - 从成员构造函数中抛出异常(大括号初始值设定项与初始值设定项列表)

我对自己在初始化成员对象期间(从构造函数)抛出异常时发生的情况的理解失去了信心(可能有2个小时)。举个例子:intinit(intf){throwf;}structX{X(intf):n{init(f)}{}intn;};structP{Xx{20};};和用法:intmain(intargc,char**argv){try{Pp{};}catch(intn){std::cout此代码(C++11模式)编译良好(使用GCC7.2.1)并且在Linux(Centos7.4.1708)下我得到:terminatecalledafterthrowinganinstanceof'int'[1]

java - 如何声明函数参数以接受抛出的函数?

我在Kotlin中定义了一个函数:funconvertExceptionToEmpty(requestFunc:()->List):Stream{try{returnrequestFunc().stream()}catch(th:Throwable){//Logtheexception...returnStream.empty()}}我已经用这个签名定义了一个Java方法:ListgetStaticWidgets()throwsIOException;我尝试这样组合它们:Streamwidgets=convertExceptionToEmpty(()->getStaticWidgets

java - 如何声明函数参数以接受抛出的函数?

我在Kotlin中定义了一个函数:funconvertExceptionToEmpty(requestFunc:()->List):Stream{try{returnrequestFunc().stream()}catch(th:Throwable){//Logtheexception...returnStream.empty()}}我已经用这个签名定义了一个Java方法:ListgetStaticWidgets()throwsIOException;我尝试这样组合它们:Streamwidgets=convertExceptionToEmpty(()->getStaticWidgets